public class Main {
    public static void main(String[] args) {
        Integer a=127;
        Integer b=127;

        Integer c=128;
        Integer d=128;
        
        //此处肯定是不一样的，因为，引用类型的等号是判断地址一样不一样
        //并不是用来判断值相同不相同
        //

        //2.什么是泛型
        //一般的类和方法，只能使用具体的类型：要么是基本类型，要么是自定义的类。如果要编写可以应用于多种类型的代码
        //这种刻板的限制对代码的束缚就会很大
        //
        //泛型：就是适用于许多许多的类型，从代码上面将，就是对类型实现参数化
        //
        //引出泛型，
        //实现一个类，类里面包含一个数组成员，使得数组中可以放任何类型的数据
        //也可以根据成员方法返回数组中某个下标的值
        //？
        //1.我们以前学过的数组，只能存放指定类型的元素，例如：
        //基本类型和引用类型
        //2所有类的父类，默认是Object类，那么数组是否可以使用Object类呢？


        //这个时候就会转型啥的
        //
        System.out.println(a==b);
        System.out.println(c==d);
    }
    public static void main2(String[] args) {
        //包装类&简单认识泛型
        //1.以能阅读java集合原码为目标学习泛型
        //2.了解包装类
        //3.了解泛型

        //1.包装类：
        //在java中，由于基本类型不是继承于Object，为了在泛型代码中可以支持基本类型，java给每个基本类型都对应了一个包装类型呢

        //1.1基本数据类型和对应的包装类
        //Integer和Character
        //1.2装箱和拆箱
        //
        int i=10;
        //装箱操作，新建一个Integer类型对象，将int类型的值放入对象的某个属性中
        //
        Integer ii=Integer.valueOf(i);
        Integer ij=new Integer(i);


        //拆箱操作
        int j=ii.intValue();

        //自动装箱和自动拆箱
        //可以看到在使用过程中，装箱和拆箱带来不少的代码量，所以为了减少开发者的负担，java提供了自动机制
        //

        //自动装箱和拆箱都可以直接写，也可以使用强制类型转化
        //
    }
}